package com.luo.backend.dto;

import java.util.List;

/**
 * 首页数据响应DTO
 */
public class HomeResponse {
    
    private List<BannerInfo> banners;
    private List<FoodResponse> hotFoods;
    private List<FoodResponse> recommendedFoods;
    private List<GroupBuyingResponse> activeGroupBuying;
    private List<MerchantResponse> popularMerchants;
    private SystemStats stats;
    
    // 轮播图信息
    public static class BannerInfo {
        private Long id;
        private String title;
        private String image;
        private String link;
        private Integer sort;
        private String type; // merchant, food, group_buying, external
        
        public BannerInfo(Long id, String title, String image, String link, String type) {
            this.id = id;
            this.title = title;
            this.image = image;
            this.link = link;
            this.type = type;
        }
        
        // Getters and Setters
        public Long getId() { return id; }
        public void setId(Long id) { this.id = id; }
        
        public String getTitle() { return title; }
        public void setTitle(String title) { this.title = title; }
        
        public String getImage() { return image; }
        public void setImage(String image) { this.image = image; }
        
        public String getLink() { return link; }
        public void setLink(String link) { this.link = link; }
        
        public Integer getSort() { return sort; }
        public void setSort(Integer sort) { this.sort = sort; }
        
        public String getType() { return type; }
        public void setType(String type) { this.type = type; }
    }
    
    // 系统统计信息
    public static class SystemStats {
        private Long totalUsers;
        private Long totalMerchants;
        private Long totalFoods;
        private Long totalOrders;
        private Long activeGroupBuying;
        
        public SystemStats(Long totalUsers, Long totalMerchants, Long totalFoods, Long totalOrders, Long activeGroupBuying) {
            this.totalUsers = totalUsers;
            this.totalMerchants = totalMerchants;
            this.totalFoods = totalFoods;
            this.totalOrders = totalOrders;
            this.activeGroupBuying = activeGroupBuying;
        }
        
        // Getters and Setters
        public Long getTotalUsers() { return totalUsers; }
        public void setTotalUsers(Long totalUsers) { this.totalUsers = totalUsers; }
        
        public Long getTotalMerchants() { return totalMerchants; }
        public void setTotalMerchants(Long totalMerchants) { this.totalMerchants = totalMerchants; }
        
        public Long getTotalFoods() { return totalFoods; }
        public void setTotalFoods(Long totalFoods) { this.totalFoods = totalFoods; }
        
        public Long getTotalOrders() { return totalOrders; }
        public void setTotalOrders(Long totalOrders) { this.totalOrders = totalOrders; }
        
        public Long getActiveGroupBuying() { return activeGroupBuying; }
        public void setActiveGroupBuying(Long activeGroupBuying) { this.activeGroupBuying = activeGroupBuying; }
    }
    
    // 构造函数
    public HomeResponse() {}
    
    // Getters and Setters
    public List<BannerInfo> getBanners() { return banners; }
    public void setBanners(List<BannerInfo> banners) { this.banners = banners; }
    
    public List<FoodResponse> getHotFoods() { return hotFoods; }
    public void setHotFoods(List<FoodResponse> hotFoods) { this.hotFoods = hotFoods; }
    
    public List<FoodResponse> getRecommendedFoods() { return recommendedFoods; }
    public void setRecommendedFoods(List<FoodResponse> recommendedFoods) { this.recommendedFoods = recommendedFoods; }
    
    public List<GroupBuyingResponse> getActiveGroupBuying() { return activeGroupBuying; }
    public void setActiveGroupBuying(List<GroupBuyingResponse> activeGroupBuying) { this.activeGroupBuying = activeGroupBuying; }
    
    public List<MerchantResponse> getPopularMerchants() { return popularMerchants; }
    public void setPopularMerchants(List<MerchantResponse> popularMerchants) { this.popularMerchants = popularMerchants; }
    
    public SystemStats getStats() { return stats; }
    public void setStats(SystemStats stats) { this.stats = stats; }
}

